Some operating systems, such as a non-real time operating system, provide for multithreaded applications. These systems do not have a large number of priority levels or strict adherence to running a higher-priority thread over a lower-priority thread.
Some operating systems have a maximum of one hundred priority levels. Other operating systems limit an application designer to six priority levels within a single process, and no more than thirty-two priority levels across the entire system. The operating system uses the priorities as more of a suggestion than a requirement. These operating systems may choose to run lower-priority threads to avoid thread starvation and in pursuit of fairness.
For applications that need a much broader range of priority levels and strict adherence, some operating systems use user-mode scheduling in 64-bit systems. User-mode scheduling is used to host soft real-time applications. Soft real-time refers to the absence of strict time deadlines coupled with the presence of a priority based thread scheduling system.